// 使用自定义字体文件的完整示例
// 针对 HIRAGINO KAKU GOTHIC INTERFACE W8.OTF

// 方法1：通过字体名称使用（推荐）
function useHiraginoFont() {
    var doc = app.activeDocument;
    var newText = doc.textFrames.add();
    newText.contents = "ヒラギノ角ゴシック テスト";
    newText.position = [100, 100];
    
    // 尝试不同的字体名称变体
    var fontNames = [
        "HiraginoSans-W8",
        "Hiragino Sans",
        "Hiragino Kaku Gothic Interface",
        "HiraginoKakuGothic-W8",
        "ヒラギノ角ゴシック Interface",
        "Hiragino Sans W8"
    ];
    
    var fontFound = false;
    
    for (var i = 0; i < fontNames.length; i++) {
        try {
            var targetFont = app.textFonts.getByName(fontNames[i]);
            newText.textRange.characterAttributes.textFont = targetFont;
            newText.textRange.characterAttributes.size = 24;
            fontFound = true;
            alert("成功使用字体: " + fontNames[i]);
            break;
        } catch (e) {
            // 继续尝试下一个名称
            continue;
        }
    }
    
    if (!fontFound) {
        alert("未找到 Hiragino 字体，请检查字体是否已安装");
        listAvailableFonts(); // 显示可用字体
    }
    
    return newText;
}

// 方法2：列出所有可用字体（用于查找正确的字体名称）
function listAvailableFonts() {
    var fontList = "";
    var fontCount = app.textFonts.length;
    
    // 只显示前50个字体，避免列表过长
    var displayCount = Math.min(fontCount, 50);
    
    for (var i = 0; i < displayCount; i++) {
        var fontName = app.textFonts[i].name;
        fontList += (i + 1) + ". " + fontName + "\n";
    }
    
    if (fontCount > 50) {
        fontList += "\n... 还有 " + (fontCount - 50) + " 个字体";
    }
    
    alert("系统中可用的字体（前50个）:\n\n" + fontList);
}

// 方法3：搜索包含特定关键词的字体
function findFontByKeyword(keyword) {
    var matchingFonts = [];
    var fontCount = app.textFonts.length;
    
    for (var i = 0; i < fontCount; i++) {
        var fontName = app.textFonts[i].name.toLowerCase();
        if (fontName.indexOf(keyword.toLowerCase()) !== -1) {
            matchingFonts.push(app.textFonts[i].name);
        }
    }
    
    if (matchingFonts.length > 0) {
        var result = "找到包含 '" + keyword + "' 的字体:\n\n";
        for (var j = 0; j < matchingFonts.length; j++) {
            result += (j + 1) + ". " + matchingFonts[j] + "\n";
        }
        alert(result);
        return matchingFonts;
    } else {
        alert("未找到包含 '" + keyword + "' 的字体");
        return [];
    }
}

// 方法4：安全的字体设置函数
function setFontSafely(textFrame, fontName, fallbackFont) {
    if (!fallbackFont) fallbackFont = "Arial";
    
    try {
        // 尝试使用指定字体
        var targetFont = app.textFonts.getByName(fontName);
        textFrame.textRange.characterAttributes.textFont = targetFont;
        return true;
    } catch (e) {
        try {
            // 使用备用字体
            var fallback = app.textFonts.getByName(fallbackFont);
            textFrame.textRange.characterAttributes.textFont = fallback;
            alert("字体 '" + fontName + "' 不可用，已使用备用字体: " + fallbackFont);
            return false;
        } catch (e2) {
            alert("字体设置失败: " + e2.message);
            return false;
        }
    }
}

// 方法5：创建带有 Hiragino 字体的文本（完整版本）
function createHiraginoText(content, x, y, size) {
    // 默认参数
    if (!content) content = "ヒラギノテスト";
    if (!x) x = 100;
    if (!y) y = 100;
    if (!size) size = 24;
    
    var doc = app.activeDocument;
    var newText = doc.textFrames.add();
    newText.contents = content;
    newText.position = [x, y];
    
    // Hiragino 字体的可能名称
    var hiraginoNames = [
        "HiraginoSans-W8",
        "Hiragino Sans W8",
        "Hiragino Kaku Gothic Interface W8",
        "HiraginoKakuGothic-W8",
        "ヒラギノ角ゴシック Interface W8"
    ];
    
    var success = false;
    for (var i = 0; i < hiraginoNames.length; i++) {
        if (setFontSafely(newText, hiraginoNames[i], "Arial")) {
            success = true;
            break;
        }
    }
    
    // 设置字体大小
    newText.textRange.characterAttributes.size = size;
    
    // 设置颜色
    var blackColor = new RGBColor();
    blackColor.red = 0;
    blackColor.green = 0;
    blackColor.blue = 0;
    newText.textRange.characterAttributes.fillColor = blackColor;
    
    if (success) {
        alert("Hiragino 字体文本创建成功！");
    }
    
    return newText;
}

// 方法6：字体安装检查（增强版）
function checkHiraginoInstallation() {
    // 更全面的 Hiragino 字体名称列表
    var hiraginoVariants = [
        "HiraginoSans-W8",
        "Hiragino Sans W8",
        "Hiragino Sans",
        "Hiragino Kaku Gothic Interface",
        "Hiragino Kaku Gothic Interface W8",
        "HiraginoKakuGothic-W8",
        "HiraginoKakuGothicInterface-W8",
        "ヒラギノ角ゴシック Interface W8",
        "ヒラギノ角ゴシック Interface",
        "ヒラギノ角ゴ Interface W8",
        "Hiragino Sans GB",
        "HiraginoSansGB-W8",
        "Hiragino Kaku Gothic Pro",
        "Hiragino Kaku Gothic ProN",
        "Hiragino Kaku Gothic Std",
        "Hiragino Kaku Gothic Interface",
    ];
    
    var installedFonts = [];
    var notInstalledFonts = [];
    
    for (var i = 0; i < hiraginoVariants.length; i++) {
        try {
            app.textFonts.getByName(hiraginoVariants[i]);
            installedFonts.push(hiraginoVariants[i]);
        } catch (e) {
            notInstalledFonts.push(hiraginoVariants[i]);
        }
    }
    
    var result = "Hiragino 字体检查结果:\n\n";
    
    if (installedFonts.length > 0) {
        result += "✅ 找到 " + installedFonts.length + " 个 Hiragino 字体:\n";
        for (var j = 0; j < installedFonts.length; j++) {
            result += "  • " + installedFonts[j] + "\n";
        }
        result += "\n";
    } else {
        result += "❌ 未找到任何 Hiragino 字体变体\n\n";
        result += "解决方案:\n";
        result += "1. 确认 OTF 文件已正确安装到系统\n";
        result += "2. 重启 Illustrator\n";
        result += "3. 运行 searchAllFonts() 查看所有可用字体\n";
        result += "4. 运行 findFontByKeyword('hiragino') 搜索相关字体\n\n";
    }
    
    alert(result);
    return installedFonts;
}

// 新增：搜索所有字体（分页显示）
function searchAllFonts() {
    var fontCount = app.textFonts.length;
    var fontsPerPage = 30;
    var totalPages = Math.ceil(fontCount / fontsPerPage);
    
    for (var page = 0; page < totalPages; page++) {
        var startIndex = page * fontsPerPage;
        var endIndex = Math.min(startIndex + fontsPerPage, fontCount);
        
        var fontList = "系统字体列表 (第 " + (page + 1) + "/" + totalPages + " 页):\n\n";
        
        for (var i = startIndex; i < endIndex; i++) {
            var fontName = app.textFonts[i].name;
            fontList += (i + 1) + ". " + fontName + "\n";
        }
        
        var continueSearch = confirm(fontList + "\n继续查看下一页？");
        if (!continueSearch) {
            break;
        }
    }
}

// 新增：智能字体安装指导
function fontInstallationGuide() {
    var guide = "字体安装指导:\n\n";
    guide += "macOS 系统:\n";
    guide += "1. 双击 HIRAGINO KAKU GOTHIC INTERFACE W8.OTF 文件\n";
    guide += "2. 在预览窗口中点击 '安装字体' 按钮\n";
    guide += "3. 或者将字体文件拖拽到 '字体册' 应用中\n\n";
    
    guide += "Windows 系统:\n";
    guide += "1. 右键点击 OTF 文件\n";
    guide += "2. 选择 '安装' 或 '为所有用户安装'\n";
    guide += "3. 或者复制到 C:\\Windows\\Fonts\\ 文件夹\n\n";
    
    guide += "安装后:\n";
    guide += "1. 重启 Adobe Illustrator\n";
    guide += "2. 运行 checkHiraginoInstallation() 再次检查\n";
    guide += "3. 如果仍未找到，运行 searchAllFonts() 查看所有字体";
    
    alert(guide);
}

// 新增：创建字体测试文档
function createFontTestDocument() {
    var doc = app.activeDocument;
    var testText = "Font Test: HIRAGINO\nヒラギノ角ゴシック\n日本語テスト\nABCDEFG 12345";
    
    // 尝试使用系统中找到的第一个 Hiragino 字体
    var availableFonts = checkHiraginoInstallation();
    
    if (availableFonts.length > 0) {
        var newText = doc.textFrames.add();
        newText.contents = testText;
        newText.position = [50, 200];
        
        try {
            var targetFont = app.textFonts.getByName(availableFonts[0]);
            newText.textRange.characterAttributes.textFont = targetFont;
            newText.textRange.characterAttributes.size = 24;
            
            var blackColor = new RGBColor();
            blackColor.red = 0;
            blackColor.green = 0;
            blackColor.blue = 0;
            newText.textRange.characterAttributes.fillColor = blackColor;
            
            alert("字体测试文档已创建，使用字体: " + availableFonts[0]);
        } catch (e) {
            alert("创建测试文档时出错: " + e.message);
        }
    } else {
        alert("未找到 Hiragino 字体，无法创建测试文档");
        fontInstallationGuide();
    }
}

// 使用示例
function exampleUsage() {
    // 1. 检查 Hiragino 字体是否可用
    checkHiraginoInstallation();
    
    // 2. 创建使用 Hiragino 字体的文本
    // createHiraginoText("こんにちは世界", 100, 200, 36);
    
    // 3. 搜索 Hiragino 相关字体
    // findFontByKeyword("hiragino");
    
    // 4. 列出所有可用字体
    // listAvailableFonts();
}

// 快速测试函数
function quickTest() {
    createHiraginoText("HIRAGINO TEST\nヒラギノテスト\n日本語フォント", 50, 150, 28);
}

searchAllFonts(); // 现在会搜索更多字体名称变体